package com.bluesky.light.admin;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.bluesky.light.util.DB;

/**
 * 管理員類的資料
 * 
 * @author LEMON
 * 
 */
public class Admin {

	/**
	 * 管理員名
	 */
	private String name;

	/**
	 * 管理員密碼
	 */
	private String pwd;

	/**
	 * @return
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	public String getPwd() {
		return pwd;
	}

	/**
	 * @param pwd
	 */
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	/**
	 * 驗證管理員所輸入的管理員名 是否存在, 如果不存在, 作異常返回, 如果管理員存在, 則驗證這個管理員所對應的密碼是否正確, 如果密碼不正確,
	 * 處理密碼不正確的異常, 如果密碼正確, 則允許這個管理員登入。
	 * 
	 * @param username
	 * @param pwd
	 * @return
	 */
	public static Admin check(String username, String pwd) {
		Connection conn = DB.getConn();
		String sql = "select * from t_admin where username = '" + username
				+ "'";
		Statement stmt = DB.getStatement(conn);
		ResultSet rs = DB.getResultSet(stmt, sql);
		Admin admin = null;

		try {
			if (!rs.next()) {
				throw new AdminNotFoundException("Admin not found:" + username);
			} else {
				if (!pwd.equals(rs.getString("pwd"))) {
					throw new AdminPasswordNotCorrectException(
							"Password not correct!");
				}
				admin = new Admin();
				admin.setName(username);
				admin.setPwd(pwd);

			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DB.close(rs);
			DB.close(stmt);
			DB.close(conn);
		}

		return admin;
	}
}
